package com.design.cjm.creational.singleton.example;

/**
 * 单例模式
 *
 * @Author: Jie Ming Chen
 * @Date: 2018/9/27
 * @Version 1.0
 */
public class Singleton {

    private static Singleton singleton = null;

    /**
     * 私有静态变量 singleton 被延迟实例化，这样做的好处是，如果
     * 没有用到该类，那么就不会实例化 singleton，从而节约资源
     *
     * @return
     */
    public static Singleton getSingleton() {
        if (singleton == null) {
            return new Singleton();
        }
        return singleton;
    }

    /**
     * 私有化构造方法,防止外部调用
     */
    private Singleton() {
    }
}
